{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "+ 1.数据预处理-参考day1\n",
    "+ 2.通过训练集来训练简单线性回归模型\n",
    "+ 3.预测结果\n",
    "+ 4.可视化\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "F:\\Anaconda\\lib\\importlib\\_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n"
     ]
    }
   ],
   "source": [
    "# 1.数据预处理\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Hours</th>\n",
       "      <th>Scores</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2.5</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5.1</td>\n",
       "      <td>47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3.2</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>8.5</td>\n",
       "      <td>75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.5</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.5</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>9.2</td>\n",
       "      <td>88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5.5</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>8.3</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2.7</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>7.7</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>5.9</td>\n",
       "      <td>62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>4.5</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>3.3</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>1.1</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>8.9</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2.5</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>1.9</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6.1</td>\n",
       "      <td>67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>7.4</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>2.7</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>4.8</td>\n",
       "      <td>54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>3.8</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>6.9</td>\n",
       "      <td>76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>7.8</td>\n",
       "      <td>86</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Hours  Scores\n",
       "0     2.5      21\n",
       "1     5.1      47\n",
       "2     3.2      27\n",
       "3     8.5      75\n",
       "4     3.5      30\n",
       "5     1.5      20\n",
       "6     9.2      88\n",
       "7     5.5      60\n",
       "8     8.3      81\n",
       "9     2.7      25\n",
       "10    7.7      85\n",
       "11    5.9      62\n",
       "12    4.5      41\n",
       "13    3.3      42\n",
       "14    1.1      17\n",
       "15    8.9      95\n",
       "16    2.5      30\n",
       "17    1.9      24\n",
       "18    6.1      67\n",
       "19    7.4      69\n",
       "20    2.7      30\n",
       "21    4.8      54\n",
       "22    3.8      35\n",
       "23    6.9      76\n",
       "24    7.8      86"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset = pd.read_csv(r'C:\\Users\\碌卡\\Desktop\\python编程学习\\python数据分析\\100daysML_file\\day2\\studentscores.csv')\n",
    "dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = dataset.iloc[:,:1].values\n",
    "Y = dataset.iloc[:,1].values\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 1/4,random_state = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 2.通过训练集来训练简单线性回归模型\n",
    "from sklearn.linear_model import LinearRegression\n",
    "regressor = LinearRegression()\n",
    "regressor = regressor.fit(X_train,Y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([16.84472176, 33.74557494, 75.50062397, 26.7864001 , 60.58810646,\n",
       "       39.71058194, 20.8213931 ])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 3.预测结果\n",
    "Y_pred = regressor.predict(X_test)\n",
    "Y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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KCRVVUkNDebmjZISye937OU5IRVIjJgnIvX19bruuuuUm5urPn366JxzzlF1dXX79w3D0B133KHCwkJlZmaqtLRUO3bscLRpAGmuslIqLpYmTZJmzjQ/Fxeb9W76+c8jQ0hmJiEEiJeYgsi+ffs0YcIE9erVSy+++KLeeecdPfjggzrxxBPbr7n//vv10EMP6dFHH9XWrVuVn5+viy66SC0tLY43DyANVVZK06dLdXXWen29We9GGPH5pJtuinzZgwe7/JIAjsNnGJ3P+bfddpv+93//V1VVVbbfNwxDhYWFqqio0IIFCyRJra2tysvL03333acbbrjhuD+jublZOTk5ampqUnZ2dmdbA5AOQiFz8tExhIT5fFIgINXUxLRM09oqnXBCZJ0pCNB5Xf39HdNE5Pnnn9eYMWN05ZVXauDAgRo9erSeeOKJ9u/X1NSosbFRU6dOba9lZGTowgsv1GuvvWb7mq2trWpubrZ8AICtqqroIUQyk0NtrXldJ33965Eh5NprCSFAosQURD744AMtW7ZMw4cP18svv6zvfe97uvnmm/XMM89IkhobGyVJeXl5lj+Xl5fX/r2OFi9erJycnPaPoqKirrwPAOmgocHR63w+ad06a+3QIem552LsC0CXxRRE2tradO6552rRokUaPXq0brjhBn3nO9/RsmXLLNf5Ouz0Mgwjoha2cOFCNTU1tX/U1tbG+BYApI2CAkeu++ij6HfF9OrVhb4AdFlMQaSgoEBnnHGGpXb66adr9+7dkqT8/HxJiph+7N27N2JKEpaRkaHs7GzLBwDYKikx94BEO0nM55OKiszrovD5zG0mx/rVr1iKAdwSUxCZMGGCdu7caant2rVLQ4YMkSQNHTpU+fn52rBhQ/v3Dx06pM2bN2v8+PEOtAsgrfn90tKl5j93DCPhr5csibpRNdoUZPZsB3sEEJOYgsgtt9yi119/XYsWLdL777+vFStWaPny5SorK5NkLslUVFRo0aJFWrt2rbZv365vfetb6tOnj2bOnBmXNwAgzQSD0po10qBB1nogYNaDwYg/8tJLHFAGJKuYbt+VpN/+9rdauHCh3nvvPQ0dOlTz5s3Td77znfbvG4ahO++8U7/4xS+0b98+nX/++fr5z3+uUaNGder1uX0XQKd08mRVuwDy5z9Lo0cnoEcgjXT193fMQSTeCCIAnGAY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ki680JV2AADwNCYix1i1KjKEHDxICAEAIF4IIjKXXEaPlq655mht4UKznpnpXl8AAHhd2i/NfPCB9KUvWWvbt0sjR7rTDwAA6SStJyIPPGANIYWF0pEjhBAAABIlLScihw9LJ55o7v8IW7ZM+t733OsJAIB0lHZBpLpaGjPGWqurizx4FQAAxF9aLc388pfWEFJaah7TTggBAMAdaRVEVq8++s+/+Y15cmq0B/MCAID4S6ulmQcflF54QSork3Jy3O4GAACkVRA580zzAwAAJIe0WpoBAADJhSACAABcQxABAACuIYgAAADXEEQAAIBrCCIAAMA1BBEAAOAagggAAHANQQQAALiGIAIAAFxDEAEAAK4hiAAAANcQRAAAgGuS7um7hmFIkpqbm13uBAAAdFb493b493hnJV0QaWlpkSQVFRW53AkAAIhVS0uLcnJyOn29z4g1usRZW1ub9uzZo6ysLPl8vi6/TnNzs4qKilRbW6vs7GwHO3Sfl9+b5O335+X3JvH+UpmX35vk7feXLO/NMAy1tLSosLBQPXp0fudH0k1EevTooUAg4NjrZWdne+5/dGFefm+St9+fl9+bxPtLZV5+b5K3318yvLdYJiFhbFYFAACuIYgAAADX+O+444473G4iXvx+v0pLS9WzZ9KtQHWbl9+b5O335+X3JvH+UpmX35vk7feXyu8t6TarAgCA9MHSDAAAcA1BBAAAuIYgAgAAXEMQAQAAriGIAAAA13guiPzP//yPLr/8chUWFsrn82ndunVut+SYxYsXa+zYscrKytLAgQN1xRVXaOfOnW635Zhly5bprLPOaj8dcNy4cXrxxRfdbisuFi9eLJ/Pp4qKCrdbccQdd9whn89n+cjPz3e7LcfU19fruuuuU25urvr06aNzzjlH1dXVbrfliOLi4oj/3/l8PpWVlbndWrcdOXJEP/rRjzR06FBlZmZq2LBhuuuuu9TW1uZ2a45paWlRRUWFhgwZoszMTI0fP15bt251u62YpN4Nx8dx4MABnX322Zo9e7a+8Y1vuN2OozZv3qyysjKNHTtWR44c0e23366pU6fqnXfeUd++fd1ur9sCgYB++tOf6pRTTpEkPf3005o2bZreeOMNjRw50uXunLN161YtX75cZ511ltutOGrkyJF65ZVX2r/2+/0uduOcffv2acKECZo0aZJefPFFDRw4UP/3f/+nE0880e3WHLF161aFQqH2r7dv366LLrpIV155pYtdOeO+++7T448/rqefflojR47Utm3bNHv2bOXk5Ki8vNzt9hzx7W9/W9u3b9ezzz6rwsJCPffcc5oyZYreeecdDRo0yO32OsfwMEnG2rVr3W4jbvbu3WtIMjZv3ux2K3Fz0kknGf/5n//pdhuOaWlpMYYPH25s2LDBuPDCC43y8nK3W3LET37yE+Pss892u424WLBggTFx4kS320iY8vJy40tf+pLR1tbmdivddumllxpz5syx1ILBoHHddde51JGzDh48aPj9fuO3v/2tpX722Wcbt99+u0tdxc5zSzPppKmpSZLUv39/lztxXigU0qpVq3TgwAGNGzfO7XYcU1ZWpksvvVRTpkxxuxXHvffeeyosLNTQoUN19dVX64MPPnC7JUc8//zzGjNmjK688koNHDhQo0eP1hNPPOF2W3Fx6NAhPffcc5ozZ063nn6eLCZOnKjf//732rVrlyTprbfe0pYtW3TJJZe43Jkzjhw5olAopBNOOMFSz8zM1JYtW1zqKnaeW5pJF4ZhaN68eZo4caJGjRrldjuOefvttzVu3Dh9/vnn6tevn9auXaszzjjD7bYcsWrVKlVXV2vbtm1ut+K4888/X88884xOPfVUffzxx7rnnns0fvx47dixQ7m5uW631y0ffPCBli1bpnnz5umHP/yh/vSnP+nmm29WRkaGvvnNb7rdnqPWrVunf/zjH/rWt77ldiuOWLBggZqamjRixAj5/X6FQiHde++9uuaaa9xuzRFZWVkaN26c7r77bp1++unKy8vTypUr9cc//lHDhw93u73Oc3skE0/y8NLMjTfeaAwZMsSora11uxVHtba2Gu+9956xdetW47bbbjMGDBhg7Nixw+22um337t3GwIEDjTfffLO95qWlmY72799v5OXlGQ8++KDbrXRbr169jHHjxllqc+fONS644AKXOoqfqVOnGpdddpnbbThm5cqVRiAQMFauXGn85S9/MZ555hmjf//+xlNPPeV2a455//33jS9/+cuGJMPv9xtjx441rr32WuP00093u7VOI4ikoJtuuskIBALGBx984HYrcTd58mTju9/9rtttdNvatWvb/0UR/pBk+Hw+w+/3G0eOHHG7RcdNmTLF+N73vud2G902ePBg4/rrr7fUHnvsMaOwsNCljuLjww8/NHr06GGsW7fO7VYcEwgEjEcffdRSu/vuu43TTjvNpY7iZ//+/caePXsMwzCMGTNmGJdcconLHXUeSzMpxDAMzZ07V2vXrtWmTZs0dOhQt1uKO8Mw1Nra6nYb3TZ58mS9/fbbltrs2bM1YsQILViwwDN3mIS1trbq3XffVUlJidutdNuECRMibpPftWuXhgwZ4lJH8fHkk09q4MCBuvTSS91uxTEHDx5Ujx7WrZB+v99Tt++G9e3bV3379tW+ffv08ssv6/7773e7pU7zXBDZv3+/3n///fava2pq9Oabb6p///4aPHiwi511X1lZmVasWKHf/OY3ysrKUmNjoyQpJydHmZmZLnfXfT/84Q/11a9+VUVFRWppadGqVau0adMmvfTSS2631m1ZWVkRe3n69u2r3NxcT+zxmT9/vi6//HINHjxYe/fu1T333KPm5mbNmjXL7da67ZZbbtH48eO1aNEizZgxQ3/605+0fPlyLV++3O3WHNPW1qYnn3xSs2bNSsnHyEdz+eWX695779XgwYM1cuRIvfHGG3rooYc0Z84ct1tzzMsvvyzDMHTaaafp/fff1/e//32ddtppmj17ttutdZ7LExnHbdy40ZAU8TFr1iy3W+s2u/clyXjyySfdbs0Rc+bMMYYMGWL07t3bOPnkk43Jkycb69evd7utuPHSHpGrrrrKKCgoMHr16mUUFhYawWDQE3t7wl544QVj1KhRRkZGhjFixAhj+fLlbrfkqJdfftmQZOzcudPtVhzV3NxslJeXG4MHDzZOOOEEY9iwYcbtt99utLa2ut2aY1avXm0MGzbM6N27t5Gfn2+UlZUZ//jHP9xuKyY+wzAMdyIQAABId5wjAgAAXEMQAQAAriGIAAAA1xBEAACAawgiAADANQQRAADgGoIIAABwDUEEAAC4hiACAABcQxABAACuIYgAAADX/H/n0UB/1ekaJQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 4.可视化\n",
    "# 训练集结果可视化\n",
    "plt.scatter(X_train,Y_train,color = 'red')\n",
    "plt.plot(X_train,regressor.predict(X_train),color = 'blue')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 测试集结果可视化\n",
    "plt.scatter(X_test,Y_test,color = 'red')\n",
    "plt.plot(X_test,regressor.predict(X_test),color = 'blue')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "34dfee18d5f4a96df9a8fcc719c91cf50e8ed50de2aa108bf45cd20982063274"
  },
  "kernelspec": {
   "display_name": "Python 3.7.0 64-bit ('base': conda)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
